개인 블로그를 제작하게 된 이유
개발자로서 내가 한 일을 기록하고, 이를 공유할 수 있는 공간이 필요했다. 여러 블로그 플랫폼이 있지만, 작성한 글을 복사해서 붙여넣어야 한다는 점이 번거로웠다. 이 과정에서 블로그 운영이 기록의 목적이 아니라 포스트를 만들기 위한 기록처럼 느껴지는 문제가 발생했다. 결국, 기존 플랫폼을 이용하는 방식은 내 스타일이 아니라는 결론을 내렸다.
블로그 운영 방식에 대한 고민#
블로그를 운영하는 방식에는 크게 세 가지가 있다고 생각했다.
- 기존 블로그 플랫폼을 이용하는 방법
- Notion이나 Obsidian의 Publish 기능을 활용하는 방법
- 직접 개인 블로그를 제작하여 운영하는 방법
각각의 방법을 고민하면서 어떤 방식이 나에게 가장 적합할지 검토했다.
블로그 플랫폼의 한계#
기존 블로그 플랫폼을 이용하는 방법에는 두 가지 방식이 있다. API를 활용한 자동화와 수동으로 글을 업로드하는 방식이다. 하지만 이 두 가지 방법 모두 내게는 불편한 점이 많았다.
1. API를 활용한 자동화의 어려움#
일부 블로그 플랫폼은 API를 제공하지만, 최근에는 이를 폐지하는 곳이 많아졌다. 대표적으로 네이버 블로그와 티스토리가 API 지원을 중단했다. 이처럼 플랫폼 정책이 바뀔 위험성이 크기 때문에 특정 서비스에 의존하는 것은 장기적으로 안전한 방법이 아니라고 판단했다.
2. 수동 업로드의 번거로움#
나는 Neovim을 이용해 글을 작성하고, Obsidian을 뷰어(Viewer)로 사용하고 있다. 따라서 글을 블로그에 올리려면 복사하여 붙여넣어야 하며, 플랫폼에서 지원하지 않는 Callout 형식이나 Wiki 스타일 링크 등을 직접 변환해야 하는 번거로움이 있다.
노트 앱의 Publish 기능 활용의 한계#
Notion과 Obsidian 같은 노트 앱의 Publish 기능을 활용하는 방법도 고려했지만, 몇 가지 제약이 있었다.
1. 노트와 블로그 포스트의 분리 문제#
나는 노트를 우선 Inbox 폴더에 저장한 후, 필요한 경우 다른 폴더로 이동시키는 방식으로 정리한다. 하지만 이 방식은 블로그에 올릴 글을 특정 카테고리로 묶는 데 제약이 생긴다. 이를 해결하려면 블로그 전용 워크스페이스를 만들어야 하는데, 이는 기존 블로그 플랫폼을 사용하는 것과 크게 다르지 않다.
2. 커스터마이징의 한계#
Notion과 Obsidian은 강력한 노트 관리 기능을 제공하지만, 블로그 디자인과 기능을 원하는 대로 변경하는 데는 한계가 있다. 특히 Obsidian의 Publish 기능은 기본적으로 노트 공유에 초점이 맞춰져 있어, 블로그를 운영하는 데 적합하지 않았다.
나만의 블로그를 제작하기로 결정하다#
위의 문제점들을 고려한 결과, 나만의 블로그를 직접 제작하는 것이 최선의 방법이라고 판단했다. 이렇게 하면 기존 방식의 모든 단점을 보완하면서도 나만의 이상적인 블로그 운영 방식을 구축할 수 있다.
내가 만들고 싶은 블로그의 조건#
기존 방식의 문제를 반대로 생각하면, 내가 원하는 블로그의 조건은 다음과 같았다.
- 블로그 포스팅과 노트 작성의 흐름이 자연스럽게 연결될 것
- 노트와 블로그 포스트가 분리되어, 원하는 노트만 포스팅할 수 있을 것
- 포스팅 시 블로그의 구조를 내가 직접 정의할 수 있을 것
- 필요에 따라 기능을 추가하거나 제거할 수 있도록 커스터마이징이 가능할 것
이러한 목표를 달성하기 위해 데이터베이스(DB) 사용도 고려했지만, 단순한 방법이 더 적합하다고 판단했다. 그래서 Python을 활용하여 Obsidian Vault 폴더 내의 Markdown 파일을 자동으로 블로그로 가져오는 방식을 선택했다.
커스터마이징을 위한 프레임워크#
블로그를 만들기 위한 다양한 프레임워크가 있지만 내가 다룰 줄 아는 프레임워크인 Next.js 가 커스터마이징하기 쉬워 보였기 때문에 Next.js 를 활용하여 블로그를 구축 하기로 결정하였다.
다음: 어떻게 블로그를 구현하였나